<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>

  // 异步的第一种解决方式  =>借助回调函数,什么时候到点,什么时候执行回调函数
  // 异步的第二种解决方式  =>借助事件监听,ajax请求状态改变时 执行对应的函数

  // 总结: js 歧视异步任务, 主线程先把所有的同步走完,在执行异步任务
  //       异步任务最终也会进入主线程  => 其中的代码也是按同步走

  var data = null;

  // debugger;
  console.log("代码开始执行");

  var xhr = new XMLHttpRequest();  //0

  xhr.open("get", "../data/pro.json", true);  // 1

  xhr.send();

  xhr.onreadystatechange = function () {
    // debugger;
    // 2  3   4 
    if (xhr.readyState == 4 && xhr.status == 200) {
      var text = xhr.responseText;
      // console.log(text);
      data = JSON.parse(text);
      console.log(data);

    }
  }

  console.log("页面加载完毕", data);





</script>

</html>